package java_thinking.unit_17;

/**
 * @Desc:
 *      1.Vector 特点：
 *          1.底层由一个可以增长的数组组成;
 *          2.Vector 通过 capacity (容量) 和 capacityIncrement (增长数量)来尽量少的占用空间;
 *          3.扩容时默认扩大两倍;
 *          4.最好在插入大量元素前增加 vector 容量，那样可以减少重新申请内存的次数;
 *          5.通过 iterator 和 lastIterator 获得的迭代器是 fail-fast 的;
 *          6.通过 elements 获得的老版迭代器 Enumeration 不是 fail-fast 的;
 *          7.同步类，每个方法前都有同步锁 synchronized ;
 *          8.在 JDK 2.0 以后，经过优化，Vector 也加入了 Java 集合框架大家族;
 *
 *      3.Vector VS ArrayList
 *          共同点：
 *              1.都是基于数组
 *              2.都支持随机访问
 *              3.默认容量都是 10
 *              4.都有扩容机制
 *
 *      4.区别：
 *          1.Vector 出生的比较早，JDK 1.0 就出生了，ArrayList JDK 1.2 才出来
 *          2.Vector 比 ArrayList 多一种迭代器 Enumeration
 *          3.Vector 是线程安全的，ArrayList 不是
 *          4.Vector 默认扩容 2 倍，ArrayList 是 1.5
 *
 *      5.Vector与迭代器模式:
 *          5.1 抽象聚合类Aggregate。在Vector的Iterator迭代器实现中，没有抽象聚合类。虽然它实现了AbstractList，实现了List，
 *              但它向外部提供的创建迭代器的方法iterator()是它自己的。
 *          5.2 具体聚合类ConcreteAggregate。在Vector的Iterator迭代器实现中，指的是Vector。
 *          5.3 抽象迭代器Iterator。在Vector的Iterator迭代器实现中，指的是Iterator接口。
 *          5.4 具体迭代器ConcreteIterator。在Vector中的Iterator迭代器实现中，指的是Itr。
 *          原文：https://blog.csdn.net/panweiwei1994/article/details/77045407
 *
 * @author: cww
 * @DateTime: 2019-04-29 23:24
 */

public class VectorTheory {
}
